Cloud computing management software offers central control of multiple applications across multiple client nodes. Most existing cloud management software is configured for use in a cloud network that includes general purpose client nodes, wherein each client node has similar processing and data storage capabilities. Additionally, some cloud management solutions require the hardware on client nodes to support specific features. These make existing cloud management software difficult to integrate into pre-existing computing systems with diverse hardware resources that were not originally intended for cloud computing.
Existing cloud management software is also configured for use in environments with unlimited or elastic hardware resources. For example, many cloud management solutions operate in environments where if additional hardware resources are needed, the additional resources can be obtained by renting them from available hardware resource “farms” on the internet. Because of this, many cloud management solutions rigidly assign hardware resources to applications, such that once a hardware resource is assigned to an application it cannot be reassigned or shared with another application until the first application has completed. This leads to wasted hardware resources, as a hardware resource that is idle or underutilized by an application cannot be reassigned or shared with another application until the assigned application is complete. This is undesirable in some situation, such as when only a small amount of fixed hardware resources is available.
Additionally, existing cloud management software is not configured to implement, within its managed cloud, multiple domains, which are segregated such that an application in one domain cannot concurrently share a hardware resource with an application in another domain. As such, existing cloud management software may not sufficiently segregate applications to allow different security level applications to be implemented within the same managed cloud.